/**
 * 页面下拉框初始化
 */
$(function () {
    $.ajax({
        type: 'get',
        url: "/newsType/findAll",
        data: {'page': 1, 'limit': 0},
        success: function (data) {
            // console.log(data);
            setData(data);
            return false;
        },
        error: function () {
            layui.layer.msg('请求接口异常！', {icon: 0, time: 1200});
            return false;
        }
    });
});

/**
 * Layui延迟执行操作
 */
function layuiUse() {

    layui.use(['form', 'layer', 'laydate', 'jquery','layedit'], function () {
        $ = layui.jquery;
        var form = layui.form,
            laydate = layui.laydate;
        layer = layui.layer;
        var layedit = layui.layedit;

        //注意：layedit.set 一定要放在 build 前面，否则配置全局接口将无效。 上传图片
        layedit.set({
            uploadImage: {
                url: '/upload/uploadImage' //接口url
                ,type: 'post' //默认post
            }
        });
        var index = layedit.build('content',{
            height:360,
        }); //建立编辑器

        //自定义验证规则
        form.verify({
            content: function(value) {
                return layedit.sync(index);
            }
        });

        /**
         * 初始化页面
         */
        var id = sessionStorage.getItem("id");
        // console.log("id="+id);
        if (id == null) {
            return false;
        }
        $.ajax({
            type: 'get',
            url: "/news/findById/"+id,
            success: function (data) {
                if (data.message == "success") {
                    let {id,title,subhead,content,author,typeId} = data.object;
                    $("#L_id").val(id);
                    $("#L_title").val(title);
                    $("#L_subhead").val(subhead);
                    $("#L_author").val(author);
                    //下拉框动态选定
                    let res = getData();
                    if (res.total > 0) {
                        $(res.list).each(function (index, item) {
                            if (typeId == item.id) {
                                var type = "<option value=\""+item.id+"\" selected='selected'>"+item.name+"</option>\n";
                                $("#newsType").append(type);
                                layui.form.render('select'); // 渲染有效，去掉Layui自身渲染
                            } else {
                                var type = "<option value=\""+item.id+"\">"+item.name+"</option>\n";
                                $("#newsType").append(type);
                                layui.form.render('select'); // 渲染有效，去掉Layui自身渲染
                                // 递归查询类型判断是否选中
                                resultData(item,typeId);
                            }
                        })
                    }
                    // 执行会报JS错误，放末尾执行
                    layedit.setContent(index,content);
                    return false;
                }
                layer.msg('信息获取失败，请稍后重试！',{icon:0,time:1200});
                return false;
            },
            error: function () {
                layer.msg('请求接口异常！', {icon: 0, time: 1200});
                return false;
            }
        })

        //监听提交
        form.on('submit(add)', function (data) {

            // console.log(data.field);
            //发异步，把数据提交给Java
            $.ajax({
                type: 'post',
                url: '/news/updateMessage',
                data: JSON.stringify(data.field),
                contentType: 'application/json;charset=utf-8',
                dataType: 'json',
                success: function (res) {
                    if (res.message == "success") {
                        $("#sumbit").attr("disabled",true); //禁止点击按钮
                        layer.msg('更新成功！', {icon: 1, time: 1100,end:function () {
                                // 可以对父窗口进行刷新
                                xadmin.father_reload();
                            }});
                        return false;
                    }
                    layer.msg('更新失败！', {icon: 2, time: 1200});
                    return false;
                },
                error: function () {
                    layer.msg('请求接口异常！', {icon: 0, time: 1200});
                    return false;
                }
            });
            return false;
        });

    });

}

/**
 * 由于上个请求没完就开始了
 * 200毫秒之后执行Layui操作
 */
setTimeout(function () {
    layuiUse();
},200);

/**
 * 递归实现
 * JSON页面数据渲染
 * @param data
 */
function resultData(item,typeId) {
    // 子级类型
    if (item.newsTypeList.length > 0) {
        $(item.newsTypeList).each(function (index, item) {
            if (typeId == item.id) {
                var type2 = "<option value=\""+item.id+"\" selected='selected'>"+item.name+"</option>\n";
                $("#newsType2").append(type2);
                layui.form.render('select');
            } else {
                var type2 = "<option value=\""+item.id+"\">"+item.name+"</option>\n";
                $("#newsType2").append(type2);
                layui.form.render('select');
                // 继续搜索
                resultData(item,typeId);
            }
        })
    }

}

/**
 * 将异步获取的下拉框数据进行赋值
 * @param data
 * @returns {*}
 */
let selectData;
function setData(data) {
    selectData = data;
}

/**
 * 获取下拉框Data
 * @returns {*}
 */
function getData() {
    return selectData;
}

/**
 * 重置表单
 */
function resetNews() {
    // 获取所有新闻类型
    $.ajax({
        type: 'get',
        url: "/newsType/findAll",
        data: {'page': 1, 'limit': 0},
        success: function (data) {
            // console.log(data);
            setData(data);
            return false;
        },
        error: function () {
            layui.layer.msg('请求接口异常！', {icon: 0, time: 1200});
            return false;
        }
    });
    /**
     * 由于上个请求没完就开始了
     * 200毫秒之后执行Layui操作
     */
    setTimeout(function () {
        layuiUse();
    },200);

}

var _hmt = _hmt || [];
(function () {
    var hm = document.createElement("script");
    hm.src = "https://hm.baidu.com/hm.js?b393d153aeb26b46e9431fabaf0f6190";
    var s = document.getElementsByTagName("script")[0];
    s.parentNode.insertBefore(hm, s);
})();